﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AppFx.Interpretation.Evaluation.AbstractSyntaxTree
{
	/// <summary>
	/// Repräsentiert einen beliebigen Ausdruck nach evaluation.grammar
	/// </summary>
	public class Expression
	{
		#region Properties

		/// <summary>
		/// Gibt oder setzt den Namen des Ausdrucks.
		/// </summary>
		public string Name { get; protected set; }

		/// <summary>
		/// Gibt oder setzt die untergeordneten Ausdrücke.
		/// </summary>
		public IList<Expression> Children { get; protected set; }

		#endregion

		#region Constructors


		/// <summary>
		/// Erstellt eine neue Instanz der <see cref="Expression"/>-Klasse
		/// und initialisiert die Properties 'Name' und 'Children'.
		/// </summary>
		public Expression()
		{
			Children = new List<Expression>();
		}

		#endregion
	}
}
